100 REM "PRINT A SPRITE" 110 REM 120 REM DESIGN BY PHIL MOLL 130 REM LOGIC BY BRIAN SMITHER 140 REM SACRAMENTO COMMODORE 150 REM COMPUTER CLUB 160 REM PO BOX 2227 170 REM SACRAMENTO, CA 95810 180 REM 190 REM IN ORDER TO USE THIS UTILITY, 200 REM SPRITE DATA MUST HAVE BEEN 210 REM PREVIOUSLY STORED IN MEMORY. 220 REM 230 REM PRINTER DEVICE IS 4 AND ANY 240 REM INTERFACE TO A NON-COMMODORE 250 REM PRINTER MUST EMULATE THE 1515, 260 REM 1525, AND 1526 DOT ADDRESSABLE 270 REM GRAPHICS ADEQUATELY. 280 REM 290 REM THIS PROGRAM LOGIC MAY BE 300 REM INSERTED INTO A SPRITE EDITOR 310 REM TYPE PROGRAM AS A SUBROUTINE. 320 : 330 : 340 PRINT"[147]":POKE53280,0:POKE53281,0:POKE646,3:V=53248:POKE2040,192 350 POKEV+23,71:POKEV+39,8 360 FORSD=1TO12:PRINT:NEXT 370 PRINTTAB(9)"PLEASE WAIT 3 SECONDS" 380 FORJ=12288TO12350:READQ:POKEJ,Q:NEXT 390 POKE2041,193:FORJ=12352TO12414:READR:POKEJ,R:NEXT 400 POKE2042,194:FORJ=12416TO12478:READS:POKEJ,S:NEXT 410 POKE2043,195:FORJ=12480TO12542:READD:POKEJ,D:NEXT 420 POKE2044,196:FORJ=12544TO12606:READG:POKEJ,G:NEXT 430 POKE2045,197:FORJ=12608TO12670:READH:POKEJ,H:NEXT 440 POKE2046,198:FORJ=12672TO12734:READK:POKEJ,K:NEXT 450 PRINT"[147]":POKEV+21,127 460 POKEV+0,146:POKEV+6,165:POKEV+7,160 470 POKEV+1,130:POKEV+42,12 480 POKEV+8,165:POKEV+9,160:POKEV+43,4 490 POKEV+10,165:POKEV+11,157:POKEV+44,14 500 POKEV+12,150:POKEV+13,60:POKEV+45,12:POKEV+29,64:POKEV+27,0 510 DATA0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,7,128,0,7,0 520 DATA0,7,128,0,7,0,0,7,128,7 530 DATA255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255 540 DATA63,255,255 550 REM 560 POKEV+40,8 570 POKEV+2,168 580 POKEV+3,130 590 DATA0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 600 DATA0,0,0,0,0,0,0,255,255,0,255,255,0,255,255,0,255,255,0,255,255,0 610 DATA255,255,0,255,255,0 620 REM 630 POKEV+41,8:POKEV+4,180:POKEV+5,130 640 DATA0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,0,0,240,0,0,112 650 DATA0,0,240,0,0,112,0,0,240,0,255,255,192,255,255,255,255,255,255,255 660 DATA255,223,255,255,255,255,255,255,255,255,252 670 GOSUB970 680 PRINT"":FORSD=1TO11:PRINT:NEXTSD:FORPA=1TO3:PRINTTAB(17)" ":NEXT 690 PRINT"[145][145]":A$=" DATA2,0,15" 700 FORI=1TOLEN(A$) 710 PRINTMID$(A$,LEN(A$)-I+1,I);"[145]" 720 FORT=1TO30:NEXTT 730 NEXTI 740 PRINT"  " 750 PRINT"":FORSD=1TO10-ZZ:PRINT:NEXT:PRINTTAB(17)" " 760 IFZZ=0THENPOKEV+7,153:POKEV+9,154 770 IFZZ=1THENPOKEV+7,145:POKEV+9,146:POKEV+11,147 780 IFZZ=2THENPOKEV+7,138:POKEV+9,139:POKEV+11,140 790 IFZZ=2THEN820 800 ZZ=ZZ+1:PRINT"":FORSD=1TO14:PRINT:NEXT 810 GOTO690 820 PRINT"":FORSD=1TO10:PRINT:NEXT:FORT=1TO1000:NEXT 830 GOTO1050 840 DATA0,0,0,0,56,0,0,56,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 850 DATA0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 860 REM SHIRT/ARMS 870 DATA0,0,192,0,1,128,0,3,0,0,124,0,0,220,0,1,156,0,0,220,0,0,0,0,0,0,0,0,0 880 DATA0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 890 REM PANTS 900 DATA0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,62,0,0,54,0,0 910 DATA54,0,0,54,0,0,54,0,0,54,0,0,119,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 920 DATA0,0,0,0,0,0 930 REM DUMP A 940 DATA0,0,0,0,0,0,0,0,0,246,177,190,214,187,182,214,191,190,214,181,176 950 DATA247,177,176,0,0,0,0,0,0,0,0,0,0,0,0,0,60,0,0,102,0,0,102,0,0,126,0,0 960 DATA102,0,0,102,0,0,102,0,0,0,0,0,0,0 970 PRINT"":FORSD=1TO17:PRINT:NEXT 980 PRINTTAB(4)"[159]      " 990 PRINTTAB(4)"[129]        " 1000 PRINTTAB(4)"[154]      " 1010 PRINTTAB(4)"[156]       " 1020 PRINTTAB(4)"       " 1030 PRINT:PRINTTAB(6)"[154]BY[129]: [158]B[156]R[150]I[153]A[154]N [159]S[129]M[129]I[156]TH[158]E[150]R[159] & [129]P[156]H[159]I[154]L [156]M[158]0[153]L[150]L[145]" 1040 RETURN 1050 PRINT"[147]":POKE53280,0:POKE53281,0:POKEV+21,56:POKE646,3:PRINT:PRINT 1060 A$="DUMP A SPRITE":GOSUB1190 1070 FORSD=1TO12:PRINT:NEXT:POKE646,12 1080 PRINTTAB(10)"F1 = INSTRUCTIONS":PRINT 1090 PRINTTAB(10)"F3 = LIST THE SUBROUTINE":PRINT 1100 PRINTTAB(10)"F5 = PRINT THE SUBROUTINE":PRINT 1110 PRINTTAB(10)"F7 = RUN ROUTINE 1120 [161]RT$:[139]RT$[178]""[167]1120 1130 [139] RT$[178][199](133) [167] 1820: 1140 [139] RT$[178][199](134) [167] [155] 1180[171]1750 1150 [139] RT$[178][199](135) [167] 2020 1160 [139] RT$[178][199](136) [167] 1290 1170 [137]1120 1180 [128] 1190 A[178][195](A$):[139]A[173]2[179][177][181](A[173]2)[167]A$[178]" "[170]A$:[137] 1190 1200 [129]I[178]1[164]A[173]2 1210 [153][163]19[171]I);[200](A$,I);[201](A$,I) 1220 [153]"ON";:[129]T[178]1[164]50:[130]:[130] 1230 [142] 1240 [143]***************************** 1250 [143]***************************** 1260 [143] DUMP ALGORITHM 1270 [143]***************************** 1280 [143]***************************** 1290 [153]"LOAD":[133]"SPRITE BLOCK NUMBER";BK:[153]"THIS WILL TAKE 47 SECONDS" 1300 [129] Z[178]0 [164] 2 1310 [129] X[178]0 [164] 18 [169] 3 1320 A((X[171]0)[173]3,8)[178][194](BK[172]64[170]X[170]Z[172]21) 1330 [130] X 1340 [129] X[178]1 [164] 19 [169] 3 1350 B((X[171]1)[173]3,8)[178][194](BK[172]64[170]X[170]Z[172]21) 1360 [130] X 1370 [129] X[178]2 [164] 20 [169] 3 1380 C((X[171]2)[173]3,8)[178][194](BK[172]64[170]X[170]Z[172]21) 1390 [130] X 1400 [129] Y[178]0 [164] 6 1410 [129] X[178]0 [164] 7 1420 A(Y,X)[178][180](A(Y,8)[175]2[174](7[171]X)) 1430 [130] X 1440 [130] Y 1450 [129] Y[178]0 [164] 6 1460 [129] X[178]0 [164] 7 1470 B(Y,X)[178][180](B(Y,8)[175]2[174](7[171]X)) 1480 [130] X 1490 [130] Y 1500 [129] Y[178]0 [164] 6 1510 [129] X[178]0 [164] 7 1520 C(Y,X)[178][180](C(Y,8)[175]2[174](7[171]X)) 1530 [130] X 1540 [130] Y 1550 [129] X[178]0 [164] 7 1560 [129] Y[178]0 [164] 6 1570 D[178]D[170]A(Y,X)[172]2[174]Y 1580 [130] Y 1590 D$[178]D$[170][199](D[170]128):D[178]0 1600 [130] X 1610 [129] X[178]0 [164] 7 1620 [129] Y[178]0 [164] 6 1630 D[178]D[170]B(Y,X)[172]2[174]Y 1640 [130] Y 1650 D$[178]D$[170][199](D[170]128):D[178]0 1660 [130] X 1670 [129] X[178]0 [164] 7 1680 [129] Y[178]0 [164] 6 1690 D[178]D[170]C(Y,X)[172]2[174]Y 1700 [130] Y 1710 D$[178]D$[170][199](D[170]128):D[178]0 1720 [130] X 1730 PR$[178]PR$[170]D$[170][199](13):D$[178]"" 1740 [130] Z 1750 [159]4,4 1760 [152]4,[199](8)PR$ 1770 [152]4,[199](20) 1780 [160]4:[129]ZZ[178]1[164]2000:[130]:[138] 1790 [143]****************************** 1800 [143] END OF DUMP 1810 [143]****************************** 1820 [153]"LOAD":[151]53280,12:[151]53281,15:[151]646,6:[151]V[170]21,0 1830 [153]:[153][163]13)"INSTRUCTIONS" 1840 [153]:[153]:[153]:[151]646,0 1850 [153]" THIS SPRITE DUMP IS DESIGNED" 1860 [153]" TO WORK WITH THE COMMODORE 1515, 1870 PRINT" 1525 OR 1526 PRINTER. 1880 [153] 1890 [153]" OTHER DOT MATRIX PRINTERS 1900 PRINT" WILL WORK IF THEY ADEQUATELY 1910 [153]" EMULATE COMMODORE DOT ADDRESSABLE 1920 PRINT" GRAPHICS. 1930 [153]:[153]" THE LOGIC WHICH PERFORMS THE 1940 PRINT" DUMP IS AVAILABLE THROUGH THE 1950 [153]" MENU AND MAY BE TYPED INTO ANY 1960 PRINT" PROGRAM AS A SUBROUTINE." 1970 PRINT:PRINT:PRINT 1980 PRINTTAB(10)"PRESS F7 TO CONTINUE": 1990 GET RT$:IF RT$="" THEN 1990 2000 IF RT$=CHR$(136)THEN 1050 2010 GOTO 1990 2020 OPEN1,4:CMD1 2030 LIST 1180-1750 2040 PRINT#1:CLOSE1,4 2050 GOTO 1050 2060 PRINT"[147]":FORSD=1TO8:PRINT:NEXT:POKE646,7:X=0:CT=0 2070 X=X+1:POKE646,X:CT=CT+1 2080 PRINT"":FORSD=1TO8:PRINT:NEXT:PRINTTAB(22)"BYE !" 2090 FORT=1TO30:NEXT 2100 IF CT>20 THEN 2130 2110 REM CLR:END 2120 GOTO2070 2130 FORT=1TO1000:NEXT 2140 END:REM SYS64738